#if 0
clang++ -Wall -std=c++11 $(pkg-config --cflags ~/cxxo-11.pc) -o "$0.run" "$0"
exit
#endif

/*
 * Simple test file for cxxomfort
 * When compiled and run, this will print
 * information about a chosen type TT.
 *
 * This and other examples assume cxxomfort is installed in
 * include library path; if otherwise, compile with
 * -I /path/to/cxxomfort .
 */

#include <cxxomfort/base.hpp>
#include <cxxomfort/cstddef.hpp>
#include <cxxomfort/type_traits.hpp> // is_lvalue_reference
#include <functional>
#include <utility>
#include <iostream>
#include <cxxomfort/library/type_name.hpp>
#include <cxxomfort/ostream.hpp>
#include <string>
#include <ctime>

struct test_tag_type_name {};

#if 1
#define DESIRED_TYPE  std::pair<\
      float \
    ,  std::divides< float > \
    >
#endif

typedef DESIRED_TYPE
TT;


int main () {
    using namespace std;

    cxxomfort::output_info(); cout<< endl;

    cout<< "Expecting: \n"; 
	cout<< "in source code  : '"<< CXXO_STRINGIZE(DESIRED_TYPE) << "'\n";
    cout<< "typeid().name() : '"<< typeid(TT).name()<< "'\n";
    cout<< "type_name<T>    : '"<< cxxomfort::library::type_name< TT >()<< "'\n";
    cout<< "typeid_demangle : '"<< cxxomfort::library::typeid_demangle(typeid(TT))<< "'\n";
    cout<< endl;
}

